User loginNavigation |
The Landscape of Parallel Computing Research: A View from Berkeley(via Tim Bray)
An interesting survey by a large and multidisciplinary group of Berkeley researchers. I think it is useful background reading for programming language researchers, even if the discussion of programming models is not up to the standards of LtU... And yes, STM is mentioned (albeit briefly)... Type-Level Computation Using Narrowing in OmegaHaven't seen this paper by Tim Sheard mentioned on Ltu before. As in previous papers Sheard tries to put Howard Curry to work in terms that are understandable for those that don't have a Phd in type theory.
By Niels Hoogeveen at 2007-02-08 20:21 | Functional | Meta-Programming | Type Theory | 1 comment | other blogs | 7271 reads
Patrick Logan on Software Transaction MemoryA detailed blog post on STM - and why it is a Bad Thing. Programming Shorthands
An interesting and odd paper from Todd Proebsting (of "Proebsting's Law"fame) and Ben Zorn. If you like $_ and @_ in Perl, then you may like this, too. I can't recall seeing any other papers on this topic, so pointers are welcome. ACM Queue: Realtime Garbage Collection
The article is primarily about the Metronome garbage collection technology, but includes a nice introduction to garbage collection and realtime terminology as well. Programming Parallel AlgorithmsProgramming Parallel Algorithms, Guy Blelloch. 1996.
IIRC, the team developing Fortress is putting nested data parallelism into Fortress. I think this is one of the most intriguing ways of getting heavy duty parallelism -- something that will grow ever more important as the number of cores in our computers grow. Termination Checking with TypesTermination Checking with Types, Andreas Abel. 2004.
Recently on LtU, there has been a good deal of discussion about total functional programming, so I thought I'd link to an article that shows how to use typing to enforce termination. The main advantage of type-based approaches (as compared to analyzing the program text directly) is that the termination check is not as sensitive to the precise shape of the program; for example, you can beta-reduce a term and not alter whether the system thinks the program will terminate or not. This paper is also nice because it provides a relatively simple example of bidirectional type checking, which is an important idea both practically (it reduces spurious type annotations and helps produce better error messages) and theoretically (it is intimately related to cut elimination). State of the Union: Type Inference via Craig InterpolationState of the Union: Type Inference via Craig Interpolation, by Ranjit Jhala, Rupak Majumdar, and Ru-Gang Xu The ad-hoc use of unions to encode disjoint sum types in C programs and the inability of C's type system to check the safe use of these unions is a long standing source of subtle bugs. We present a dependent type system that rigorously captures the ad-hoc protocols that programmers use to encode disjoint sums, and introduce a novel technique for automatically inferring, via Craig Interpolation, those dependent types and thus those protocols. In addition to checking the safe use of unions, the dependent type information inferred by interpolation gives programmers looking to modify or extend legacy code a precise understanding of the conditions under which some fields may be safely accessed. We present an empirical evaluation of our technique on 350KLOC of open source C code. In 80 out of 90 predicated edges (corresponding to 1472 out of 1684 union accesses), our type system is able to infer the correct dependent types. This demonstrates that our type system captures and explicates programmers' informal reasoning about unions, without requiring manual annotation or rewriting. By Jim Apple at 2007-02-04 05:05 | Implementation | Type Theory | 4 comments | other blogs | 6347 reads
RZ for Constructive Mathematics in ProgrammingRZ for Constructive Mathematics in Programming by Chris Stone and Andrej Bauer. Realizability theory is not only a fundamental tool in logic and computability, but also has direct application to the design and implementation of programs: it can produce interfaces for the data structure corresponding to a mathematical theory. Our tool, called RZ, serves as a bridge between the worlds of constructive mathematics and programming. By using the realizability interpretation of constructive mathematics, RZ translates specifications in constructive logic into annotated interface code in Objective Caml. The system supports a rich input language allowing descriptions of complex mathematical structures. RZ does not extract code from proofs, but allows any implementation method, from handwritten code to code extracted from proofs by other tools. I haven't read the paper yet, but the abstract reminded me of PADS. By Jim Apple at 2007-02-03 21:19 | DSL | Semantics | Theory | Type Theory | 3 comments | other blogs | 6381 reads
Separation Logic: A Logic for Shared Mutable Data StructuresSeparation Logic: A Logic for Shared Mutable Data Structure, John C. Reynolds. LICS 2002
I think this paper has been mentioned several times in discussion on LtU, but never gotten an article of its own. It's a really elegant piece of work that addresses the biggest weakness of Hoare logic: that you cannot do local, modular correctness proofs of programs that use aliasable state. (I should say my own research is on using separation logic in languages like ML or Haskell, so I am a partisan!) |
Browse archives
Active forum topics |
Recent comments
2 weeks 4 days ago
2 weeks 5 days ago
2 weeks 6 days ago
2 weeks 6 days ago
3 weeks 4 days ago
3 weeks 4 days ago
3 weeks 4 days ago
6 weeks 5 days ago
7 weeks 3 days ago
7 weeks 3 days ago